package com.marry.business.service.active;

import com.marry.contract.domain.User;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @program: marry-cloud
 * @description: 活动接口
 * @author: 杨超
 * @create: 2021-08-16 10:35
 **/
public interface IActive {
    /**
     * 活动状态：未开启
     */
    String UNOPENED = "unopened";
    /**
     * 活动状态：正在进行中
     */
    String ON_GOING = "on_going";
    /**
     * 活动状态：已结束
     */
    String OVER = "over";

    /**
     * 活动参与集合
     */
    List<User> getActivePartners();

    /**
     * 名称
     */
    String getActiveName ();
    /**
     * 最大人数
     */
    Integer getMaxNum ();
    /**
     * 开始时间
     */
    Date  getStartTime();
    /**
     * 结束时间
     */
    Date getEndTime();

    /**
     * 当前状态
     */
    String getState();

    /**
     * 添加活动人数
     * @return
     */
    int addActivePartners();
    /**
     * 执行方法
     */
    void execute();

    /**
     * 活动开始
     */
    void activityStarted();

    /**
     * 活动结束
     */
    void activityEnds();

    /**
     * 是否处于活动中
     */
    Boolean isActiveExecue();


}
